package com.binary.coder.gift.core.domain.ai.model;

import lombok.Builder;
import lombok.Data;

import javax.validation.constraints.NotEmpty;
import java.util.List;

/**
 * @author atao
 * @version 1.0.0
 * @ClassName XingHuoModelInputParam.java
 * @Description 星火大模型入参
 * @createTime 2024年07月12日 10:17:00
 */
@Data
@Builder
public class XingHuoModelInputParam {

    /**
     * 选择请求的模型版本
     * general指向Lite版本；
     * generalv2指向V2.0版本；
     * generalv3指向Pro版本；
     * generalv3.5指向Max版本；
     * 4.0Ultra指向4.0 Ultra版本；
     * 取值为[general,generalv2,generalv3,generalv3.5,4.0Ultra]
     */
    @NotEmpty
    private String model;

    /**
     * 是否开启流式传输
     * 默认False
     */
    private Boolean stream;

    /**
     * 核采样阈值。用于决定结果随机性，取值越高随机性越强即相同的问题得到的不同答案的可能性越高
     * 取值范围 [0,2] ，默认值1
     */
    private Float temperature;

    @NotEmpty
    private List<Message> messages;

    @Data
    public static class Message {

        /**
         * 取值为[system,user,assistant]
         * system用于设置对话背景，user表示是用户的问题，assistant表示AI的回复
         */
        private String role;

        /**
         *所有content的累计tokens需控制8192以内
         * 用户和AI的对话内容
         */
        private String content;

    }

}


